import Vue from 'vue'
import App from './App.vue'

//引入路由
import router from './router'
//引入仓库
import store from './store'

//注册三级联动组件---全局组件（定义全局组件，在入口文件注册一次之后，任何组件当中都可以使用）
import TypeNav from './components/TypeNav'
import Carousel from './components/Carousel'
import Pagination from './components/Pagination'
import { Button,MessageBox} from 'element-ui'
//第一个参数：全局组件的名字 第二个参数：哪一个组件
Vue.component(TypeNav.name,TypeNav)
Vue.component(Carousel.name,Carousel)
Vue.component(Pagination.name,Pagination)
//注册全局组件
Vue.component(Button.name,Button);
//ElementUI注册组件的时候，还有一种写法，挂在原型上
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;

//引入mockServe.js---mock数据
import './mock/mockServer'

//引入swiper样式
import 'swiper/css/swiper.css'

//统一接收api文件夹里的全部请求函数（统一引入=====引一次）
import * as API from './api'

/* //测试一下（给服务器发请求）
import {reqCategoryList} from './api'
reqCategoryList() */
/* import {reqGetSearchInfo} from './api'
console.log(reqGetSearchInfo({})) */

import atm from './assets/1.gif'
//引入插件
import VueLazyload from 'vue-lazyload'
//注册插件
Vue.use(VueLazyload,{
  //懒加载默认的图片
  loading:atm
});

//引入表单校验插件
import "./plugins/validate";

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  //全局事件总线$bus配置
  beforeCreate() {
    Vue.prototype.$bus = this
    Vue.prototype.$API = API
  },
  //注册路由：底线的写法KV一致省略V【router小写的】
  //注册路由信息：当这里书写router的时候，组件身上都拥有$route,$routers
  //$route（路由）：可以获取到路由信息（path、query、params）
  //$routers：进行编程式导航路由跳转push||replace
  router,
  //注册仓库：组件实例的身上会多一个属性$store属性
  store
}).$mount('#app')
